Multi-dimensional graphing in two-dimensional space

ABSTRACT

A method and system for displaying a function in two dimensions where the function is made up of numerous independent variables and at least one dependent variable. A new independent variable value can be defined having values which correspond to the multiple dependent variables. The variable values are read into a computer and the independent variables are then ranked by the user from fastest- to slowest-running variable. Each dependent variable corresponding to the new independent variable is plotted along the Y-axis. The independent variable values are plotted along the X-axis in a hierarchical manner. The hierarchical manner involves a nesting of fastest-running variables within slower-running variables. Rectangles are then drawn to correspond to each variable value. Each rectangle horizontally encloses the faster-running variables associated with it.

.Iadd.RELATED PATENTS

This patent is a reissue of U.S. Pat. No. 5,228,119 entitled,MULTI-DIMENSIONAL GRAPHING IN TWO-DIMENSIONAL SPACE, having Ser. No.07/608,337, filing date Nov. 2, 1990, and issue date of Jul. 13, 1993..Iaddend.

.[.This application.]. .Iadd.U.S. Pat. No. 5,228,119 .Iaddend.is acontinuation-in-part of .[.pending.]. U.S. Patent application Ser. No.07/589,820, filed Sep. 28, 1990.Iadd., now abandoned.Iaddend..

FIELD OF THE INVENTION

This invention related to graphing of data or mathematical functionswhich have .[.two.]. .Iadd.three .Iaddend.or more independent variablesand one .Iadd.or more .Iaddend.dependent .[.variable.]..Iadd.variables.Iaddend..

BACKGROUND OF THE INVENTION

Graphs have long served the purpose of allowing visual perception andinterpretation of data sets and functions. Typically, graphing involvesplotting in two dimensions along an X and a Y axis. This involves theplotting of .[.a.]. .Iadd.an .Iaddend.X "independent" variable against.[.an.]. .Iadd.a .Iaddend.Y "dependent" variable.

There are other systems and methods for visualizing 3-D data. Suchtechniques include color maps, contours, wire meshes, as well asnumerous other surface rendering techniques. All too often, 3-D ormulti-dimensional data sets are viewed in two dimensions in the form ofX,Y plots, and then repeated over various combinations until allvariables are completed. Another graphing technique involves themaintenance of variables as parameters in order to produce a twodimensional X,Y plot.

Still another method of multi-dimensional graphing is referred to as agraph "matrix." This consists of plotting all points in themulti-dimensional space in terms of their projections onto all possibleplanes. This technique proves to be quite useful in analyzing randomlysampled data (as opposed to lattice or grid-like data), especially instatistical investigations in which a clear identification of thedependent and independent variables may not be possible. Since it is theprojection of all data points onto the various planes that is shown, avariety of data "labeling" and "brushing" tools have been developed inorder to identify corresponding points for each of the graphs.

These "matrix" graphs do not provide an easy and intuitive means ofrecognizing the mathematical form that one should use to fitmulti-dimensional data. The primary reason for this shortcoming is thatthe matrix graph technique displays projections onto a particulartwo-dimensional subspace rather than all possible "parallel" planarslices through this space (corresponding to all possible values of theremaining variables).

SUMMARY OF THE INVENTION

This invention comprises a system and method using a computer forgraphing multi-dimensional data sets or functions in two-dimensionalspace. This two-dimensional space can be defined by an X- and a Y-axis.The system includes defining means, reading means, first selectingmeans, second selecting means, ranking means, determining means,plotting means, group means, and looping means. The plotting meansfurther includes first .[.sequential.]. displaying means, seconddisplaying means, first repeating means, and second repeating means. Themethod involves reading values which are to be associated with theindependent variables of the function as well as the resulting valuesassociated with the dependent variable of the function. It is alsopossible in the invention for the values associated with the dependentvariable to be calculated in real time.

A new independent variable is defined by the defining means to representmultiple dependent variables. Each value of the new independent variablecorresponds to a dependent variable. .[.The values associated withall.]. .Iadd.All .Iaddend.of the independent variables, including thenew independent variable, are ranked by the user using the firstselecting means, second selecting means, and ranking means of the systemin order from fastest- to slowest-running variables. The order in whichthe variables are ranked is flexible in designation by the user. Theindependent variables are then plotted by the plotting means along theX-axis while the dependent variable or variables, corresponding to avalue of the new independent variable, are then plotted by the plottingmeans along the Y-axis. The determining and plotting of the results arethen repeated using looping means.

Rectangles encompassing the next .[.fastest.]..Iadd.faster.Iaddend.-running .[.variables.]. .Iadd.variable.Iaddend.are displayed by the group means on the screen or plottingdevice. The rectangles are displayed in different colors with each colorcorresponding to a different variable subspace for an aid in visualrepresentation and interpretation to the users. The rectangles all havea height and the height of each rectangle can be dependent on differentfunctions. In one case, the height may be equal to the differencebetween a maximum and a minimum value of the dependent variable withinthe rectangle. In another case, the height of the rectangle may be equalto the sum of the values of the dependent variable encompassed withinthe rectangle. In still another case, the height of the rectangle may bedependent on some function of the next .[.fastest.]..Iadd.faster.Iaddend.-running variable, or some function of any of therectangles.

This method and system serves as a useful tool in the display andanalysis of data sets and functions which can be arranged in a grid-likeor lattice-like orientation. Additional objects and advantages of theinvention are set forth in part in the description which follows, and inpart are obvious from the description, or may be learned by practice ofthe invention. The objects and advantages of the invention also may berealized and attained by means of the instrumentalities and combinationsparticularly pointed out in the appended claims.

BRIEF DESCRIPTION OF THE FIGURES

The file of this patent contains at least one drawing executed in color.Copies of this patent with color drawings will be provided by the Patentand Trademark Office upon request and payment of necessary fee. Theaccompanying drawings, which are incorporated in and constitute a partof the specification, illustrate preferred embodiments of the invention,and together with the description serve to explain the principles of theinvention.

FIGS. 1A, 1B and 1C show a flow chart of the method of the presentinvention.

FIG. 2 shows an illustration of an example application of the presentinvention.

FIGS. 3A and 3B show illustrations of example applications of thepresent invention.

FIG. 4 shows the program structure of the present invention.

FIG. 5 shows the main event loop of the present invention.

FIG. 6 shows a flow chart of the Zoom In tool.

FIG. 7 shows a flow chart of the Zoom Out tool.

FIG. 8 shows a flow chart of the Animate tool.

FIG. 9 shows a flow chart of the Expander tool.

FIG. 10 shows a flow chart of the General Zoom tool.

FIG. 11 shows a flow chart of the Decimate tool.

FIG. 12 shows a flow chart of the Permute tool.

FIG. 13 shows a flow chart of the Cloning tool.

FIG. 14 shows an embodiment of the invention.

FIGS. 15(a) and 15(b) show additional embodiments of the invention.

FIGS. 16(a) and 16(b) show additional embodiments of the invention.

FIGS. 17(a) and 17(b) show additional embodiments of the invention.

FIGS. 18(a) and 18(b) show additional embodiments of the invention.

FIG. 19 shows an additional embodiment of the invention.

FIGS. 20(a), 20(b), and 20(c) show illustrations of example applicationsof .[.he.]. .Iadd.the .Iaddend.present invention.

FIG. 21 shows an illustration of example applications of the presentinvention.

FIG. 22 shows an illustration of example applications of the presentinvention.

FIG. 23 shows an illustration of an example application of the presentinvention.

FIG. 24 shows an illustration of an example application of the presentinvention.

FIG. 25 shows an illustration of an example application of the presentinvention.

FIG. 26 shows an illustration of an example application of the presentinvention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention pertains to a method for plotting scalar fieldsonan N-dimensional lattice. It is useful, among other things, for avariety of data visualization tasks such as the location of maxima,minima, saddle points and other features. It is also useful for visuallyfitting multi-variate data and for making the visual determination ofdominant and weak or irrelevant variables.

In one embodiment of the invention, each independent variable is sampledin a regular grid or lattice-like fashion (spaced in equal increments).The number and spacing of values may differ for each variable, however,in this embodiment no missing values are allowed. Thus, the Nindependent variable values form a hyper-rectangular lattice in theN-dimensional space within hyper-rectangular parallelipiped domain.

Since the definition of a function is a locus of points, the presentinvention pertains equally to plotting functions or plotting datavalues.

FIGS. 1A, 1B and 1C show a flowchart of the method of the presentinvention. Referring to FIG. 1, the system defines 100, using thedefining means, new independent variables for the dependent variables,with the new independent variables having associated values. With thedefining means, the system represents 105 the dependent variables withvalues associated with the new independent variables. The system, withthe reading means, reads 110 the values of the independent variables.There are numerous ways in which data values can be entered into acomputer, such as through a data file or a real time solution of anequation.

The system, using the computer, then allows the user to select 115,using first selecting means, the independent variable which isfastest-running, and ranking the selected independent variable, with thefirst selecting means, as the fastest-running independent variable. Thefirst selecting means may be embodied as a software subroutine coupledto user inputs from a mouse 84 or a keyboard 83, in conjunction withuser prompts from display 81, as shown in FIG. 14. They system thenallows the user to select 120, using second selecting means, theindependent variable which is next fastest-running, and ranking theselected independent variable, with the second selecting means, as thenext fastest-running independent variable. The second selecting meansmay be embodied as a software subroutine coupled to user inputs from amouse 84 or a keyboard 83, in conjunction with user prompts from display81, as shown in FIG. 14.

The system then repeats 130, using ranking means, the selecting ofindependent variables from fastest to slowest, and ranks 125 theselected independent variables until all independent variables areranked form fastest-running to slowest-running. This invention plotsmulti-dimensional variables in two-dimensional space based on ahierarchical ranking of variables, and the resulting rectangles whichare plotted thereupon. In order to do so, it is necessary for theoperator or the computer system, if it is configured as such, to rankthe variables from fastest to slowest-running variable. This can be acompletely arbitrary ranking, and in fact it is often useful to view themulti-dimensional graphs in different combinations of rankings of theindependent variables. Regardless, it is necessary to set up a rankingfrom fastest to slowest by whatever designation is desired by the user.

The system, using the computer, determines 135, using determining means,a result for each value of a new independent variable for allcombinations of the values of all remaining independent variables otherthan the new independent variable. Using plotting means, thecorresponding dependent variable values are plotted in two-dimensionalspace. With the independent variables ranked in their hierarchicalfashion and plotted against the X-axis, the corresponding dependentvariable value is plotted along the Y-axis. This gives a distribution ofvalues in two-dimensional space. In some embodiments of the invention,the dependent variable values are already computed or known and readinto a data file similar to the independent variable values. In otherembodiments, the dependent variables are calculated based on theindependent variable values. In either case, the dependent variablevalues are plotted along the Y-axis. It should be noted that, similar tothe flexibility in the ranking of the independent variables, it ispossible to change the designation of variables from independent todependent, and vice versa. Again, this produces different visual resultswhich may be more useful in interpreting the data sets. The plottingmeans includes first .[.sequentially.]. displaying means, second.[.sequentially.]. displaying means, first repeating means, and secondrepeating means. Using the first repeating means, the system gets 140the first independent variable, and .[.sequentially.]. displays 145 theresults corresponding to the values associated with the fastest-runningvariable for a first value of the next fastest-running variable and afirst value of each of the remaining independent variables. After thedisplaying 145 of the results for the fastest-running independentvariable, a rectangle is displayed 150, using group means, byhorizontally enclosing the displayed results associated with thefastest-running independent variable.

The system then gets 155 a next value of the next fastest-runningindependent variable and .[.sequentially.]. displays 160 the result,using the second .[.sequentially.]. displaying means, corresponding tothe values associated with the fastest-running independent variable fora next value of the next fastest-running independent variable and afirst value for each of the remaining independent variables. The firstrepeating means repeats 165 getting 155 a next value and displaying 160the results for each remaining value of the ext fastest-runningindependent variable until there are no remaining values of the nextfastest-running independent variable.

Using the group means, the system displays 170, on the display, arectangle horizontally enclosing the displayed results associated withthe next fastest-running independent variable, while also enclosing thepreviously displayed rectangle, thereby nesting the faster-runningvariables within the rectangles of the slower-running variablesaccording to the hierarchical plotting of the results.

The system, using second repeating means, gets 180 a nextfastest-running independent variable and repeats steps 145 to 170 ofFIG. 1 until 175 there are not remaining next faster-running independentvariables, i.e. the last value of the slowest-running independentvariable is displayed. The system, using looping means, then gets 195 anext new independent variable and repeats steps 140 to 180 until 190there are no remaining new independent variables, and the plotting ofthe variables and nesting of results in rectangles stops 200.

The multi-dimensional graphing and two-dimensional space method andsystem works by displaying hierarchical rectangles in different colors.The fastest-running variables are displayed in the present embodiment as"hash" marks. These hash marks can be thought of as rectangles havingzero height. The next fastest variable then becomes a rectangleencompassing the fastest-running variable values throughout the range ofthe next fastest-running variable. This iteration of nextfastest-running variables continues until the slowest-running variableis accounted for. This results in a nesting of rectangles as shown inFIGS. 3A, 3B and 3C. FIGS. 3A, 3B, and 3C .[.are.]. .Iadd.is a.Iaddend.graphical representation using the present invention of theIdeal Gas Law. The Ideal Gas Law is described in the form P=nRT/V, whereP is pressure, n is a number of moles, R is the gas constant, T is thetemperature (in degrees Kelvin), and V is the volume occupied by thegas.

The ranking of the independent variables T, n and V is shown is FIG. 2in their corresponding positions on the X-axis. In this particular case,T is designated as the fastest-running variable and is illustrated alongthe number line as the smallest set of hash marks; n is the nextfastest-running variable, and this is shown as the next largest set ofhash marks. Finally, V is shown as the slowest-running variable, andthis is illustrated as the largest set of hash marks.

It can be seen in FIG. 2 that the fastest-running variables are nestedwithin each next fastest-running variable and then repeated for thenegative value of the next fastest-running variable. This translates toT values of 1, 2, 3 and 4, while n=0 and V=0. Then, T runs through 1, 2,3 and 4, while n=1 and V=0, etc., until completed for all four values ofn (1-4). This cycle is then repeated for all values of V from 1-4.

The result of this is shown in FIG. 3A. In FIG. 3A, three colors areused. Color selections are made by the operator. White (14) designatesthe fastest-running variable T, while blue (15) represents the nextfastest-running variable n and, finally, orange (16) represents theslowest-running variable V. When looking at the graph, the value P isplotted along the Y-axis while the independent variable values areplotted along the X-axis.

The white hash marks designate the T value. The white hash marks areconnected by splines (17), whose purpose is to aid in the visualinterpretation. They are not a requirement of the present method andsystem, but instead a useful interpretative tool. The splines are usedin connecting groups of rectangles, i.e., fastest, next fastest andslowest-running variables.

The blue rectangles represent the value of n. Each blue rectangleencompasses four of the white hash marks (fastest-running variables), asthere are four values of T for each value of n. The blue rectangles arealso connected by splines.

Finally, the orange rectangles which represent the variable values Vencompass four blue rectangles. This is a result of there being fourvalues of n for each value of V.

Thus, a nesting of rectangles in a hierarchical fashion illustrates thegraph of the Ideal Gas Law. One can view the different groupings ofvariables at any point to interpret the data set, while at the same timeseeing conditions on either side of that location for the entire set ofvariable values.

FIG. 3B shows a graph representing the gaussian functionw=e⁻(x**2+y**2+z**2) using the invention.

FIG. 4 shows an overview of the program structure of an embodiment ofthe present invention. This system chart of the program structure showsthe available tools all connected to a main event loop 27. Main eventloop 27 is shown in FIG. 5. All tools and operational commands areinitiated via subroutine calls in the present embodiment of theinvention. The tools are shown in FIGS. 6-13.

In FIG. 5, there is shown a flow chart of the basic operation of mainevent loop 27. The main event loop is a central point of program flow.After the program embodying the present invention is initialized, itenters the main event loop and all subsequent actions are dispatchedfrom here. An event is usually some user input requesting some action ofthe program. Once the main event loop is entered, it continually scansfor an event (i.e., tool). When an event is detected (received), themain event loop determines what action should be taken and issues theappropriate function calls subroutine calls). After the function (tool)completes its execution, the main event loop resumes scanning for userinput.

In block 42, the main event loop awaits for user action. Then, afteruser action such as the toggling of buttons on a mouse or pressing ofkeys on a keyboard, an appropriate function call is made in block 43.The function (or subroutine) is called and completed and then processingreturns to the main event loop in block 44. The main event loop thenkeeps cycling waiting for user input before making the appropriatefunction calls.

FIG. 6 shows a flow chart of the Zoom In tool (20 in unscaled mode orZoom In tool 21 in scaled mode). The Zoom In tool reduces thedimensionality of the plotted space. One of the currently displayedsecond slowest-running variables is selected from the currentlydisplayed slowest-running variable, and this selected secondslowest-running variable becomes the currently displayed slowest-runningvariable. The net effect of this tool is to zoom in on one of the spacesor subspaces. This tool can be used for finding maxima and minima.

In the scaled version, the zoomed-in subspace is proportioned to thesize of the display screen. In the unscaled Zoom In, the selectedsubspace is kept in its original proportion as in the space from whichit was selected. Unscaled tools allow the user to see tendencies, suchas decay and growth.

The Zoom In tool operates by grabbing the position of the variable spaceto be zoomed in, as shown in block 45. This can be accomplished bypointing to the variable space (rectangle) using a mouse or otherpointing device. Next, the plotted space (displayed space) is set to thesubspace selected in block 45. This is shown in block 46. In block 47,the display space is repainted in either scaled or unscaled versionshowing the zoomed-in subspace. In block 48, control returns to the mainevent loop to continue scanning for new events.

FIG. 7 shows a flow chart of the Zoom Out tool. The Zoom Out toolcorresponds to block 22 (in unscaled form) and block 23 (in scaled form)of FIG. 4. The Zoom Out tool works inversely to the Zoom In tool and, assuch, increases the dimensionality of the plot. Note that thedimensionality cannot be increased above the maximum starting value. Thesubspace which runs slower than the currently displayed slowest-runningvariable becomes the currently displayed slowest-running variable. This,again, is up to the maximum starting value.

An index is kept when zooming into subspaces so that the control systemof the present invention can monitor the level of display of the currentdisplayed space.

In block 49, the previous (zoomed-in) subspaced index is retrieved. Inblock 50, the plotted space (displayed space) is set to this subspaceindex value. In block 51, the plotted space is repainted to the subspacecorresponding to this index value. Then, in block 52, control returns tothe main event loop and scans for new events. This can be accomplishedin numerous ways, and in the present embodiment is operated by clickingon one of the mouse buttons. It could just as easily be configured towork via keyboard commands.

FIG. 8 shows a flow chart for the Animate tool. The Animate toolsequentially displays each subspace in the currently displayedslowest-running variable. In the present embodiment, the sequentialdisplay cycles continually over the subspaces until the user terminatesthe animation. It is possible in other embodiments to set the cycling toa designated number. It is also possible to have a manually operatedcycling operated by a pointing device such as a mouse, or throughkeyboard commands.

The Animate tool can be operated in unscaled mode 24 or scaled mode 26.As with the other tools, scaled mode proportionally adjusts thecurrently displayed subspace to fill the display screen, while unscaledmode maintains the sizing of the designated subspace without adjustment.

The Animate tool operates by first retrieving the subspace index inblock 53. At decision block 54, it is determined whether to continuewith the Animation process. Should the user desire to continue,processing moves along to block 55, where the plotted space is set tothe subspace index. In block 56, the plotted space is repaintedaccording to the display for the subspace index. This will be in eitherscaled or unscaled mode, depending on the user's selection. In block 57,the next subspace index is obtained. Processing then returns to decisionblock 54, and the user determines whether or not to continue with theanimation. Should the decision be "NO," processing continues to block 58where the plotted space is set to the last subspace index. The screen isthen repainted in block 59, and processing returns to the main eventloop in block 60.

FIG. 9 shows a flow chart for the Expander tool. The Expander tool isapplied about a particular point in the multi-dimensional space, anddisplays the variation along each independent variable using ahomogeneous horizontal increment for each variable rather than thehierarchical increment which is the basis for the multi-dimensionalgraphing and two-dimensional spaced method and system. The Expander tooltakes a section of each variable through the point expanded upon, butdoes not sample all points in the display space. This tool is useful fortasks such as finding minima and maxima.

The expander tool allows one to view how the dependent variable changesas one moves away from the point in question in the white independentvariable direction until one reaches the edges of the data domain,similarly for the blue, red, etc., independent variables. This tool canclearly be generalized by showing variations as one moves away from thepoint of expansion in more complex ways that involve non-parallel moves.For example, one could show the variations that occur when, in additionto the standard expander tool moves, one also displays moves about eachpoint that correspond to incrementing all of the other colored variablesby ± one. Further generalizations can involve all possible moves aboutthe new points until, in fact, one could show all possible paths throughthe N dimensional space.

In block 61, the position or point is grabbed. In block 62, a new windowis created for displaying the results of the expansion. In block 63, thelines representing the expansion through the point are painted. Thepainting of the lines is completed in the colors representing thecorresponding independent variables. In block 64, processing returns tothe main event loop.

FIG. 10 shows a flow chart for the operation of the General Zoom tool.This General Zoom tool sets the limits, left and right, of the currentlydisplayed slowest-running variable. The General Zoom tool does notchange the currently displayed slowest-running variable. This tool isuseful for showing portions of the currently displayed subspace. TheGeneral Zoom tool can be used in scaled (block 37) or unscaled (block38) mode. The scaling and unscaling is exactly the same as has beendescribed for the previous tools. This, as always, is a userdesignation.

In block 65, the position on the X-axis is obtained for the left andright boundaries. In block 66, these boundaries are set as left andright limits. In block 67, the subspace is set to the left and rightlimits which were set in block 66. In block 68, the displayed subspacein repainted with the new left and right boundaries. In block 69,processing returns to the main event loop.

In the present embodiment of the invention, the General Zoom toolapplies for all subspaces that the user now goes into and out of. Thisis a design choice, and is not a limitation of this tool in the presentinvention. Also, the General Zoom can be reset to the original limits inblock 33 of FIG. 4.

FIG. 11 shows a flow chart for the Decimate/Undecimate tools 32, 34, 35and 36. As with the other tools, the Decimate and Undecimate toolsoperate in a scaled or unscaled mode.

The Decimate tool decreases the number of currently displayedslowest-running variable subspaces by only plotting every Nth subspace,where N is the level of decimation. The Undecimate tool operates in theopposite manner, but is limited to undecimating only decimatedsubspaces.

Without the Decimator tool, an obvious drawback to this embodiment ofthe invention is that each data point uses at least one horizontalpixel. Since work station monitors generally have about 10³ pixelshorizontally, this obviously limits the number of total data pointsdisplayed at any one time to 10³. This is despite the fact thatmulti-dimensional problems tend to require large numbers of data points.

The Decimator tool allows a fraction of the total distinct values foreach variable to be displayed. In many cases, this still allows usefulinterpretation of the data and functions. For example, in a data setthat has 10⁶ data points, one can show only the first, fourth, seventhand tenth values for each variable, hence, reducing the total number ofpoints that need to be displayed to 4⁶, or 4096. This makes it necessaryto scroll only four frames, instead of one thousand, to see the "entire"data set.

In order to get a detailed look at a particular subspace, the zoom toolcan be used. It is also possible to decimate certain variables incertain increments, while other variables in other increments. Inanother possible embodiment of this invention, a combination Zoom andDecimator tool is used for handling large data sets.

In block 70, the decimate level is set. This can be done throughclicking the buttons on a pointing device, such as a mouse (in thepresent embodiment), or through keyboard input. In block 71, thesubspace is repainted incorporating the decimation or undecimationlevel. Finally, in block 72, processing control returns to the mainevent loop.

FIG. 12 shows a flow chart for the Permute tool. The Permute toolchanges the hierarchical assignment of the independent variables. Thestarting assignment is used as a reference for all future assignments.The functional dependence remains unchanged after using the Permutetool. It is only the order in which the data are plotted which ischanged. In short, the Permute tool allows for the exchange of therankings of the independent variables. This is very useful fordetermining which ranking gives the most useful or most beneficialvisual results.

A related tool is the Array Plot tool 31 of FIG. 4. The Array Plot toolcan show all or some combinations of rankings of independent variablesin the display space. This allows the user to select which ranking givesthe best or desired visual results.

In the present embodiment of the invention, the Permute tool worksbetween pairs of variables. This pairwise exchange has been found to bea very practical way of using the Permute tool, but is not a limitationof the present invention.

In block 73, the subspaces are set to permute. In block 74, the data isrearranged according to the new ranking of the independent variables. Inblock 75, the displayed space is repainted according to the permutation.Finally, in block 76, processing control returns to the main event loop.

FIG. 13 shows a flow chart for the Cloning tool 30. The Cloning toolsimply makes a copy of the currently displayed plot and places it in awindow in another part of the screen. This allows the concurrent displayof various subspaces. These displayed subspaces can be operated on byvarious tools to show an overall picture for the user. It can also beused to show different "zooms" at the same time for the user.

In block 77, the current plot is painted into the cloning space. Inblock 78, the clone spot is repainted onto screen. In block 79,processing control returns to the main event loop.

There are other tools in the program structure of FIG. four 4, such as aResize Tool 40 and Resize Panel 39. The Resize Tool is used for changingthe size of the display space. The Resize Panel is used for changing thesize of the display panel which monitors the operation of the displayspace and the various tools operating on it at any given time.

The Splines tool 29 draws lines between rectangles to be used as a guidefor the eye. The Splines that are drawn between rectangles are drawnaccording to the following criteria:

    Y=ymin .Iadd.if .Iaddend.|ymin|>=|ymax|

    Y=ymax .Iadd.if .Iaddend.|ymin|<|ymax|

where ymin and ymax are the minima and maxima of the rectangle throughwhich the spline is drawn. The splines are drawn hierarchically, joiningrectangles of the same subspace together.

The nested hierarchical rectangles of the present invention correspondto the behavior of the dependent variable W over independent variablesubspaces of various dimensionalities. The following formulas are forthe vertical and horizontal locations and extents of these rectangles inworld coordinates (not screen coordinates). The corresponding screencoordinates would be measured from the lower left corner of the X windowand would, in general, be offset in the scale for each independentvariable to reflect the fact that the starting values of each variablemay not be zero, and the increment value may vary from one independentvariable to the next.

It is useful to denote the independent variables as X₁, X₂ . . . X_(n)(instead of Xwhite, Xblue, where the colors pertain to the rectanglecolors). Here, X₁ is the fastest-running variable, X₂ is the secondfastest-running variable, and so on. Associated with each value of X₁ isan independent variable subspace of dimension d=0, i.e., a point.Associated with each value of X₂ is an independent variable subspace ofdimension d=1, i.e., a line (of points). In general, each value of X_(L)corresponds to an independent variable subspace of dimension d=L-1, andhas a corresponding rectangle (which may be thought of as correspondingto a subspace of dimension L, i.e., L-1 independent variables along thehorizontal and one dependent variable, namely w, along the vertical).

Each independent variable X_(L) takes on values

    X.sub.L,i =X.sub.Ls +(i-1)ΔX.sub.L

with i=1 to N_(L)

In general, the starting values X_(Ls) may differ, as may the incrementsΔX_(L) and the total number of values NL. In the formulas given below,we will set X_(Ls) =0 and .[.X_(L) =1.]. .Iadd.Δ.Iaddend.X_(L) =1 which,in fact, corresponds more closely to the actual screen displayedrectangles and is essential in order to obtain correct formulas for thelocations and extents of the rectangles.

Formulas

A) The number of Rectangles of Each Type:

the total number of X₁ rectangles ##EQU1## which corresponds to thenumber of points (d=0) in the independent variable space.

the total number of X₂ rectangles ##EQU2## which corresponds to thenumber of lines (d=1) along the X₁ direction.

the total number of X₃ rectangles ##EQU3## which corresponds to thenumber of planes (d=2), i.e., (X₁, X₂) planes.

in general ##EQU4## and corresponds to the number of subspaces ofdimension d=L-1, i.e., (X₁, X₂ . . . X_(L-1)) subspaces.

B) The Vertical Extent of the Rectangles

The vertical extent of a rectangle corresponding to a particular valueof X_(L), say, the i^(th) value (hence, corresponding to an independentvariable subspace of dimension d=L-1), is given by the differencebetween the maximum value of the dependent variable in that subspaceW_(L),i,max and the minimum value W_(l),i,min

    i.e., ΔV.sub.L,i =W.sub.L,i,max -W.sub.L,i,min

C) Horizontal Extent of the Rectangles

The horizontal extent of a rectangle equals the sum of the correspondinghorizontal extents of smaller rectangles within it (which correspond tolower dimensionality) ##EQU5##

It is useful to define N₀ =1 and to re-write Δh_(L) as ##EQU6##

D) The Vertical Location of the Rectangles

The bottom of the rectangle corresponding to a particular value of X_(L)is given by

    V.sub.bottom L,i =W.sub.L,i,min

The top of this rectangle is given by

    V.sub.top L,i =W.sub.L,i,max

E) The Horizontal Locations of the Rectangles

The left edge of a rectangle is located at ##EQU7##

Here, the set of integers j_(L), j_(L+1) . . . j_(n) specify which X_(L)rectangle (i.e., which subspace of dimension d=L-1) one is referring to.Since Δh_(L),left depends on the set {j_(k) }_(k)≧L, one couldexplicitly write

    Δh.sub.L,left ({j.sub.k }.sub.k≧L).

This expression can be made obvious if one uses the result from C above,namely ##EQU8## that is, the sum of moving to the right by (j_(n) -1)largest rectangles of width Δh_(n) plus (j_(n-1) -1) next largest etc.plus finally (j_(L) -1) Δh_(L). Again, the set of integers j_(n),j_(n-1) . . . j_(L) specify which X_(L) rectangle (i.e., which subspaceof independent variable dimension d=L-1) one is referring to.

The right side of the rectangle and its center are given by

    h.sub.L, right =h.sub.L, left +Δh.sub.L

    h.sub.L, right =h.sub.L, left +1/2Δh.sub.L

THE EFFECTS OF THE VARIOUS TOOLS

The Zoom In Tools (scaled and unscaled) reduce the dimensionality n.

The Zoom Out Tools (scaled and unscaled) increase the dimensionality n(up to the maximum starting value).

The Animate Tools (scaled and unscaled) increment the value j_(L).

The General Zoom Tools (scaled and unscaled) reduce N_(L) with values ofX_(L) remaining contiguous, i.e., X_(L) constant.

The General Zoom Reset Tool restores N_(L) to its original value.

The Decimate Tools (scaled and unscaled) reduce N_(L) with X_(L)increasing.

The Undecimate Tools (scaled and unscaled) restore N_(L) to its originalvalue.

The Permute Tool interchanges two variables say X_(i) --X_(j) hence, ingeneral, affecting N_(i) and N_(j) (and in general the pattern ofhierarchical rectangles unless N_(i) =N_(j), {X_(i) }={X_(j) } and w hasthe exact same functional dependence on X_(i) and X_(j)).

The Resize Tools simply alter the size of the X window or slider widgets(Resize Panel tool).

The Clone Tool simply clones an existing X window.

The Expander Tool is applied about a particular selected point in themulti-dimensional space and displays the variation along the variable(X₁) direction, variable (X₂) direction, etc. using a homogeneoushorizontal increment for each variable rather than a hierarchicalincrement.

That is, the Expander Tool displays

    ______________________________________                                              W(X.sub.1, X.sub.2selected, X.sub.3selected  . . . X.sub.4selected)           vs X.sub.1                                                                    and W(X.sub.1selected, X.sub.2, X.sub.3selected  . . .                        X.sub.1selected)                                                              vs X.sub.2                                                              .                                                                             .                                                                                   W(X.sub.1 selected, X.sub.2selected, X.sub.3selected, X.sub.n) vs             X.sub.n                                                                       as simple color-coded x,y plots.                                        ______________________________________                                    

FIG. 14 shows an example of a computer system 80 on which the presentinvention can be run. It is comprised of monitor 81, CPU and massstorage device 82, keyboard 83 and mouse 84. Computer system 80 can bein many configurations.

In the present embodiment of the invention, the multi-dimensionalgraphing in two-dimensional space software was developed and is beingrun on a Hewlett Packard model 330CH computer, which is describedgenerically as a Motorola 68020 microprocessor, a

Motorola 68881 floating point co-processor, a 1280×1024 8-plane graphicscard, and 4 megabytes of dynamic RAM. The operating system being used isHewlett Packard HPUX version 7.0. The program environment is C using theHPUX C-compiler. The graphics environment is the X Windows System™, asimplemented by Hewlett Packard in HPUX 7.0. Those skilled in the artwill understand that the present method and system are not limited tothis computer system and operating environment. In fact, successfuloperation of the system has been accomplished on a Sun SPARC station 1and a Sun 3, both running Sun Operating System; Solbourne computersrunning Sun Operating System; and 386 machines running Interactive Unix.

A software appendix of the source code implementing the presentinvention is included.

FIG. 15 shows an irregularly spaced grid and the corresponding plottingof rectangles, respectively.

In irregularly spaced independent variable grid 14A, there is shownmultiple data points with spacings Δ₁, Δ₂, Δ₃, Δ₄ along the Y-axis andspacings δ₁, δ₂, δ₃ along the X-axis.

FIG. 15B is one possible rendering involving hierarchical rectangles forthe function W=X₂ +Y₂. Note that horizontal gaps appear between therectangles, but that all the rectangles are of the same width.

Even though the Δ and δ distances shown in FIG. 15A are integermultiples of Δ_(i) and δ_(i), it is not a limitation of the system.

FIGS. 16A and 16B show a case of non-grid sampling of independentvariables which are not completely random. A variety of samplings of theindependent variable space which are not grid-like, and which are alsonot perfectly random are possible. Using the data set in FIG. 16A, andapplying the function W=X² +Y², the rendering involving hierarchicalrectangles in FIG. 16B comes about. Note that the widths of therectangles vary to reflect the extent of the X-axis variable beingsampled.

The invention can be extended to the case of randomly sampledindependent variables in other ways. First, one could use multi-linearinterpolation or more advanced methods to evaluate the dependentvariable over a standard grid and then use the invention. Second, onecould first treat the "dependent" variable on the exact same footing asthe independent variables and perform a multivariate binning. In thiscase, the number of points in an N+1 dimensional bin (i.e., N originalindependent variables plus the original dependent variable) would becomethe new dependent variable and the newly quantized (via the binningprocess) old dependent variable would be mapped to the hierarchicalhorizontal axis. This would allow one to look for correlations betweenthe horizontal axis variables. FIGS. 17A and 17B show the simple case ofno correlation between the original dependent variable and oneindependent variable.

FIGS. 18A and 18B show the simple case w=x² with no noise and, hence,perfect correlation. The uncorrelated case will show, for example,gaussians of gaussians if the variables are normally distributed. Theimportant point is that the distributions differ from one value of theslower variable to the next only in their amplitude. Note, however, thatin the correlated case, the distributions clearly evolve in an orderlyfashion not involving a simple amplitude scaling.

Just as one can replace standard 2 dimensional Cartesian x,y plots bythe present invention, wherein the dependent variable is plotted alongthe vertical axis while all independent variables .[.all plotting.]..Iadd.are plotted .Iaddend.hierarchically along the horizontal axis, onecan replace standard 2d color maps, where the independent variables, sayx and y, are plotted along the horizontal and vertical respectively, andcolor is used to denote the value of the dependent variable, in whichboth the vertical and horizontal axes are hierarchical. That is, someindependent variables are mapped hierarchically to the horizontal axis,and the rest are mapped hierarchically to the vertical axis. In thiscase, the color of the resulting nested rectangles could be determinedby the values of the dependent variable over the corresponding subspacein a variety of ways, such as the maximum within the subspace, theminimum within the subspace, etc., One could also color only thoserectangles that have values falling within a specified range of thedependent variable, the remaining rectangles being shown in black.

In FIG. 19, this scheme is shown for the case w=x₁ ² +y₂ ² +z₃ ² +r₄ ².Here, w is the dependent variable and x₁, y₂, z₃ and r₄ are fourindependent variables, each of which takes on values of -1, 0 and 1.Therefore, the total number of points is 3⁴ =81. Here, a complete set oftools analogous to those described above could be used for both theindependent variables and the dependent variable.

In multi-dimensional graphing in two-dimensional space, it is possibleto produce graphs using two or more dependent variables. The priorexamples illustrate cases using one dependent variable and multipleindependent variables.

In cases where the multiple dependent variables are defined for the sameset of independent variables or for some common subset of independentvariables, it can be very useful to display all of the dependentvariables in the same graph. This allows for visualizing possiblecorrelations which may be occurring between the dependent variables forcertain combinations of the independent variables.

One way of accomplishing this is to establish one or more newindependent variables which are associated with the set of dependentvariables. The new independent variables which refer to dependentvariables are called dependent variable selection, or DVS variables. Forexample, in plotting R-dependent variables, each of which is a scalar, aDVS variable would be established having values 1, 2, 3, . . . R. Thecollection of R dependent variables in this example can be thought of asa vector, or a singly subscripted array (i.e., A_(i) with i=1 to R).

This singly subscripted array may not correspond physically to a vector.In some cases, it could refer to a collection of variables, such asspecific heat, lattice constant, magnetic susceptibility, and thermalconductivity. This collection would not normally be thought of ascomponents of a vector, but could very well be part of a materialsproperties database. It must be repeated that the applicability of thepresent invention is not limited to mathematical formulas, but rather toall functions. As functions are defined as a locus of points, many formsof data are applicable for graphing with the present invention. Thisincludes database information, statistical information, matrixinformation, and mathematical formulas. Another example of dependentvariables could be the x, y, and z components of a vector representingan electric field.

Whether it is a simple database component or a component of amathematical formula, the use of new independent variables representingthe DVS allows for multiple dependent variable representation. In thecase of a materials property database, a new independent DVS variablecould be established having a value of 1 representing specific heat; avalue of 2 representing the lattice constant; a value of 3 representingmagnetic susceptibility; and a value of 4 representing thermalconductivity. In the case of the electric field vector, a value of 1could represent the x component of the vector; the value 2 couldrepresent the y component; and the value 3 could represent the zcomponents of the vector.

It is also possible to portray the multiple dependent variables asdoubly subscripted arrays of the form A_(ij). In this example, two DVSvariables are created, with one covering the range of integers i (i=1 toR_(i)) and the other covering the range of integers j (j=1 to R_(j)).For this doubly subscripted array example, the number of scalardependent variables is R_(i) * R_(j), as long as there are no missingvalues.

The collection of values for A_(ij) might actually correspond to aproperty which is usually regarded as a tensor or a matrix.

The collection of data values may also be organized into R_(i)categories, with each category having one or more properties (dependentvariables) within it. In this case, the first dependent variable (the iin A_(ij)) could be thermodynamic properties. The second dependentvariable (the _(j) in A_(ij)) could represent several differentproperties within this variable. This organization structure would berepeated for the other first dependent variables. In all cases, themulti-dimensional graphing in two-dimensional space allows for databasevisualization and the use of the tools that have been previouslydescribed.

Further examples could involve multiple dependent variables that involvearrays with three or four or more subscripts by introducing three orfour or more DVS variables to represent them. In each case, the DVSvariables are treated in the same manner as all other independentvariables. Further, the DVS variables will also function withnon-regular grid values (grid spacing) as described with reference toFIGS. 15-18.

Shown in FIGS. 20A, 20B, 20C, and 21-23 are examples where one DVSindependent variable has been added for the case of three dependentvariables.

FIGS. 20A, 20B, 20C, and 21-23 illustrate examples of the presentinvention, where one DVS independent variable has been addedcorresponding to three dependent variables. In FIG. 20A, there is showna multi-dimensional graph in two-dimensional space for a dependentvariable A versus two independent variables, t and h. Here, t isrepresented as the fastest-running variable and h as the slowest-runningvariable. Each independent variable in FIG. 20A has three associatedvalues.

FIG. 20B is a graph for a second dependent variable B. The values of Bcan be normalized so that the numerical value of the maximum value of B(B_(max)) is identical to the maximum value of A (A_(max)) of FIG. 20A.In general, the values of the independent variables of A and B can bedifferent. The two independent variables in FIG. 20B are identical tothose in FIG. 20A, with t being the fastest-running variable and h beingthe slowest-running variable.

FIG. 20C is a graph for a third dependent variable C. Again, the valuesof C have been normalized so that C_(max) =A_(max). The two independentvariable t and h are identical to those in FIGS. 20A and 20B, with t asthe fastest-running variable and h as the slowest-running variable.

If the dependent variables A, B and C have the same unit or dimension,as in the case of the three components of a vector, it might not bedesirable to normalize them so that A_(max) =B_(max) =C_(max). This isobviously dependent upon the application for which the present inventionis being applied.

FIG. 21 is a graph of the results after defining a new DVS-typeindependent variable. In FIGS. 20A, 20B, and 20C, the DVS independentvariable is the slowest-running variable, t is the fastest-runningvariable, and h is the second fastest-running variable.

FIG. 22 is a graph of the same information as in FIG. 21, except thatthe DVS independent variable is displayed as the fastest-runningvariable, while t is the second fastest-running variable, and h is theslowest-running variable.

FIG. 23 is a graph of the same information as in FIGS. 21 and 22, exceptthat t is now the fastest-running variable, the DVS independent variableis the second fastest-running variable, and h is the slowest-runningvariable.

FIG. 24 is a multi-dimensional graph in two-dimensional space, whereinthe rectangles have a width corresponding to the independent variable.[.value.]. .Iadd.with which they are associated.Iaddend.. The vertical.Iadd.extent .Iaddend.or height of the rectangles from .[.zero on they-axis.]. .Iadd.the X-axis (Y=0) .Iaddend.is determined by summing theheights or vertical distances of the preceding slowest-running variable(the largest rectangle contained within the rectangle of interest). Thisprovides a different visualization of the function being graphed thanthe manner of graphing where the rectangle's vertical boundaries werebased on the minimum and maximum values of the preceding rectangles(largest rectangles contained within the rectangle of interest).

The rectangles are colored, as in the other cases. An additional featureallows the user to select which rectangle is to be drawn first, and,therefore, could possibly be masked or partially masked by later drawnrectangles. The user also may select the order in which the remainingrectangles are drawn. When the graphing of the rectangles is complete,the user can choose to redraw any particular rectangles to account formasking.

To illustrate drawing the rectangles, consider a rectangle correspondingto an independent variable subspace of dimension r. The non-zerovertical end (other vertical extreme) of this rectangle, V_(r), is givenby the equation ##EQU9## where V_(r-1),i is the non-zero verticalextreme of the i^(th) rectangle corresponding to a subspace of dimensionr-1 and n_(r-1) is the total number of rectangles corresponding to asubspace of dimension r-1.

The graph shown in FIG. 24 shows a multi-dimensional graph intwo-dimensional space with rectangles based on the sum of the nextlargest rectangles contained within. For the simple three independentvariable case of FIG. 24, black is the fastest variable, blue is thenext-fastest and red is the slowest-running variable. The black and bluevariables have three values, while the red variable has four values. Inthis case, the dependent variable is positive definite (i.e., eitherpositive or zero).

FIG. 25 shows another graph where the height of the rectangles aredetermined by summing the values of the next-largest rectangle containedwithin the rectangle of interest.

The graphing of rectangles using minimum and maximum as for graphs priorto FIG. 23 can be expressed recursively as:

V_(rlower) =minimum of all V_(r-1) within the r subspace rectangle widthof interest;

and

V_(rupper) =maximum of all V_(r-1) within the r subspace rectangle widthof interest;

and

.[.V_(olower) =V_(olower) .]. .Iadd.V_(0lower) =V_(0upper) .Iaddend.=Wthe value of the dependent variable at the point of interest.

Similarly, the graphing of rectangles using the summation of thenext-largest rectangles contained within the rectangle of interest canbe expressed recursively as: ##EQU10## A simple variation on this schemewould be to use the average, i.e., ##EQU11##

In FIG. 25, the black rectangles are the fastest-running variable, theblue rectangles are the .[.next.]. .Iadd.second .Iaddend.fastest, thered rectangles are the .[.next-fastest.]. .Iadd.third fastest.Iaddend.,and the yellow .[.rectangle is.]. .Iadd.rectangles are .Iaddend.theslowest-running variable. Different from the other figures, it can beseen that certain rectangles contain slower-running variables having avertical dimension which exceeds the vertical dimension of theslower-running variable. These rectangles exceed the slower-runningvariable in both the positive and negative directions, as shown at red₁,blue₂, black₂ and red₃, blue₂, black₃, respectively. With the use ofnegative values, it is possible for a nested rectangle to exceed the sumof the nested rectangles, as a negative value takes away from the summedvalue. In this particular graph, the summed values are not summedabsolute values.

In FIG. 25, the base of each rectangle is always at zero, and the othervertical extremity is based upon the sum of the next slowest-runningvariable contained within.

There is shown in FIG. 26 a graph for a case where the vertical extreme(the other end of the rectangle away from the zero base) is a newfunction of the vertical extremes of rectangles corresponding to r-1dimensional subspaces within the r-dimensional subspace.

It can be seen that one vertical extreme is set to zero, while the othervertical extreme is obtained by summing the non-zero verticalcoordinates of a subset of the nested rectangles according to thefollowing formula: ##EQU12##

It is possible to let the functions depend on which subspace ofdimensions r one is considering. In this case, the functions coulddepend on the values of slower-running variables. In general, bothvertical extremes of a given rectangle could depend on any function ofthe vertical extremes of smaller rectangles and/or the values of allslower- and faster-running independent variables.

Those skilled in the art will immediately recognize the utility of thepresent invention in the areas of graphing and data/function analysis.

It will be apparent to those skilled in the art that variousmodifications can be made to the system and method for graphingmulti-dimensional data sets and functions of the present inventionwithout departing from the scope or spirit of the invention, and it isintended that the present invention cover modifications and variationsof the system and method for graphing multi-dimensional data sets andfunctions provided they come within the scope of the appended claims andtheir equivalents.

It is claimed:
 1. A method using a system including a computer with adisplay for displaying a function in two dimensions, said displaydefined by an X-axis and a Y-axis wherein said function is comprised of.[.a plurality of.]. .Iadd.at least three discrete .Iaddend.independentvariables and at least one dependent variable, each independent variablehaving associated values, the method comprising the steps of:a. defininga new independent variable for said dependent variables, said newindependent .[.variables.]. .Iadd.variable .Iaddend.having associatedvalues, each of said values representing one dependent variable; b.reading the values associated with all of the independent variables; c.selecting which independent variable is a fastest-running independentvariable, and ranking the selected independent variable as thefastest-running independent variable; d. selecting which independentvariable is a next fastest-running independent variable, and ranking theselected independent variable as the next .[.faster.]..Iadd.fastest.Iaddend.-running independent variable; e. repeating step(d) until all independent variables are ranked, with a last rankedindependent variable being a slowest-running independent variable; f.determining a result for each value of .[.a.]. .Iadd.the .Iaddend.newindependent variable and for all combinations of the values of allindependent variables other than the new independent .[.variables.]..Iadd.variable.Iaddend.; g. plotting the results determined in step (f).[.along.]. .Iadd.for at least one value of the new independent variablein .Iaddend.the Y-axis .Iadd.direction.Iaddend., with the correspondingvalues associated with all independent variables along the X-axis in ahierarchical manner, said plotting comprising the steps of:(1).[.sequentially.]. displaying .Iadd.horizontally next to one another.Iaddend.the .[.result.]. .Iadd.results .Iaddend.corresponding to thevalues associated with the fastest-running independent variable for afirst value of the next .[.faster.]. .Iadd.fastest.Iaddend.-runningindependent variable and a first value of each of the remainingindependent variables; (2) .[.sequentially.]. displaying.Iadd.horizontally next to one another, in a same manner as for thefirst value of the next fastest-running independent variable so as topreserve horizontal spacing of the fastest-running independentvariable's values, .Iaddend.the .[.result.]. .Iadd.results.Iaddend.corresponding to the values associated with the fastest-runningindependent variable for a second value for the next fastest-runningindependent variable and a first value for each of the remainingindependent variables.Iadd., the horizontally displaying next to oneanother of the results being in such a manner that the ranking of theindependent variables remains unchanged when using an extreme left ofeach result to determine the ranking as when using an extreme right ofeach result to determine the ranking.Iaddend.; (3) repeating steps(g)(2) for each remaining value of the next fastest-running independentvariable; (4) repeating steps (g)(1)-(g)(3) for each value of anyremaining independent variable.Iadd., preserving horizontal spacings ofany given independent variable's values for every occurrence in a nestedhierarchy, .Iaddend.until completed for a last value of theslowest-running independent variable.Iadd., the horizontally displayingnext to one another of the results being in such a manner that theranking of the independent variables from fastest to slowest remainsunchanged when using an extreme left of each result to determine theranking as when using an extreme right of each result to determine theranking.Iaddend.; .[.h. displaying a group of rectangles, each rectanglehaving a first vertical extreme and a second vertical extreme, saidrectangles horizontally enclosing the plotted results associated with anindependent variable, said group of rectangles containing a nesting ofrectangles of faster-running independent variables horizontally withinthe rectangles of slower-running independent variables according to thehierarchical manner in which the results associated with the independentvariables are plotted;.]. and .[.i.]. .Iadd.h.Iaddend.. repeating steps(f) and (g) for each remaining new independent variable.Iadd.value.Iaddend..
 2. The method of claim .[.1.]. .Iadd.29.Iaddend.wherein said group of rectangles .[.displayed in step (h).].are comprised of different colored rectangles.
 3. The method of claim 2wherein each color represents a different independent variable.
 4. Themethod of claim .[.1.]. .Iadd.29 .Iaddend.wherein said first verticalextreme of each rectangle is on the .[.Y-axis line.]. .Iadd.X-axis (Y=0).Iaddend.and the second vertical extreme of the rectangle representingthe fastest-running variable is at the point corresponding to .[.thevalue.]. .Iadd.a result .Iaddend.of each particular fastest-runningvariable .Iadd.value.Iaddend..
 5. The method of claim 4 wherein thesecond vertical extreme of each .Iadd.horizontally enclosing.Iaddend.rectangle is equal to the sum of the second vertical extremesof the .Iadd.horizontally enclosed .Iaddend.rectangles associated with.[.the next fastest-running.]. .Iadd.any faster-running independent.Iaddend.variable.
 6. The method of claim 5 wherein the values of thedependent variables .[.are both.]. .Iadd.can include .Iaddend.positiveand negative .Iadd.results.Iaddend..
 7. The method of claim .[.1.]..Iadd.29 .Iaddend.comprising the further step of selecting which of therectangles .[.displayed in step (h).]. is to be displayed first.
 8. Themethod of claim 7 comprising the further step of selecting the order inwhich the remaining rectangles are displayed.
 9. The method as set forthin claim .[.1.]. .Iadd.29 wherein the second vertical extreme of eachrectangle is determined by a predetermined function.
 10. The method ofclaim 9 wherein the predetermined function defines a subset of thenested rectangles.
 11. The method of claim 10 wherein the nestedrectangles correspond to .[.the next fastest-running.]. .Iadd.anyfaster-running independent .Iaddend.variable.
 12. The method of claim 1,wherein more than one new independent variable is defined in step (a),each of said more than one new independent variables corresponding to aset of dependent variables, and each new independent variable havingassociated new values relating to .[.a property of said.]. correspondingdependent .[.variable.]. .Iadd.variables.Iaddend..
 13. A system using acomputer for displaying a function in two dimensions on a display, saiddisplay defined by an X-axis and a Y-axis, wherein said function iscomprised of .[.a plurality of.]. .Iadd.at least three discrete.Iaddend.independent variables and at least one dependent variable, eachindependent variable having associated values, the system comprising:a.defining means for defining a new independent variable for saiddependent variables, said new independent .[.variables.]. .Iadd.variable.Iaddend.having associated values, each of said values representing onedependent variable; b. reading means for reading the values associatedwith all of the independent variables; c. first selecting means forselecting which independent variable is a fastest-running independentvariable and ranking the selected independent variable as thefastest-running independent variable; d. second selecting means forselecting which independent variable is a next fastest-runningindependent variable and ranking the selected independent variable asthe next .[.faster.]. .Iadd.fastest.Iaddend.-running independentvariable; e. ranking means for repeating said selection of the nextfastest-running independent variable until all independent variables areranked with a last ranked independent variable being a slowest-runningindependent variable; f. determining means for determining a result foreach value of .[.a.]. .Iadd.the .Iaddend.new independent variable andfor all combinations of the values of all remaining independentvariables other than the new independent variable; g. plotting means forplotting said results .[.along.]. .Iadd.for at least one value of thenew independent variable in .Iaddend.the Y-axis .Iadd.direction.Iaddend.with the corresponding values associated with the independentvariables along the X-axis in a hierarchical manner, said plotting meanscomprising:(1) first .[.sequentially.]. displaying means for.[.sequentially.]. displaying .Iadd.horizontally next to one another.Iaddend.the .[.result.]. .Iadd.results .Iaddend.corresponding to thevalues associated with the fastest-running independent variable for afirst value of the next fastest-running independent variable and a firstvalue of each of the remaining independent variables; (2) second.[.sequentially.]. displaying means for .[.sequentially.]. displaying.Iadd.horizontally next to one another, in a same manner as for thefirst value of the next fastest-running independent variable so as topreserve horizontal spacing of the fastest-running independentvariable's values and in such a manner that the ranking of theindependent variables remains unchanged when using an extreme left ofeach result to determine the ranking as when using an extreme right ofeach result to determine the ranking, .Iaddend.the .[.result.]..Iadd.results .Iaddend.corresponding to the values associated with thefastest-running independent variable for a second value of the nextfastest-running independent variable and a first value for each of theremaining independent variables; (3) first repeating means for repeatingthe .[.sequential.]. display .Iadd.of the results, horizontally next toone another, .Iaddend.by the second .[.sequentially.]. displaying meansfor each remaining value of the next fastest-running independentvariable; (4) second repeating means for repeating the .[.sequential.].display by the first .[.sequentially.]. displaying means, by the second.[.sequentially.]. displaying means, and by the first repeating meansfor each value of any remaining independent variable.Iadd., preservinghorizontal spacings of any given independent variable's values for everyoccurrence in a nested hierarchy and continuing in such a manner thatthe ranking of the independent variables from fastest to slowest remainsunchanged when using an extreme left of each result to determine theranking as when using an extreme right of each result to determine theranking, .Iaddend.until completed for a last value of theslowest-running independent variable; .[.h. group means for displaying agroup of rectangles, each rectangle having a first vertical extreme anda second vertical extreme, said rectangles horizontally enclosing theplotted results associated with an independent variable, said group ofrectangles containing a nesting of rectangles of faster-runningindependent variables within the rectangles of slower-runningindependent variables according to the hierarchical manner in which theresults associated with the independent variables are plotted;.]. and.[.i.]. .Iadd.h.Iaddend.. looping means for repeating the determining ofthe results by said determining means, and for repeating the plotting ofthe results by said plotting means for each remaining new independentvariable .Iadd.value.Iaddend..
 14. The method of claim .[.1.]. .Iadd.29.Iaddend.further comprising, after .Iadd.the .Iaddend.step .[.(h).]..Iadd.of displaying a group of rectangles.Iaddend., the stepof:.[.(h2).]. graphically connecting the plotted result of each fastestrunning variable nested within a rectangle of the next fastest runningvariable.
 15. The method of claim 14 further comprising, after .Iadd.the.Iaddend.step .[.(h).]. .Iadd.of graphically connecting.Iaddend., thestep of:.[.(h3).]. graphically connecting the plotted result of afastest running variable located within a rectangle of the next fastestrunning variable with the plotted result of a fastest running variablelocated within all other rectangles of the next fastest runningvariable.
 16. The method of claim .[.1.]. .Iadd.29 .Iaddend.furthercomprising, after .Iadd.the .Iaddend.step .[.(h).]. .Iadd.of displayinga group of rectangles.Iaddend., the step of:.[.(h2).]. graphicallyconnecting the plotted result of a fastest running variable locatedwithin a rectangle associated with a particular independent variablewith a corresponding plotted result of a fastest running variablelocated within all other rectangles associated with the same independentvariable.
 17. The method of claim 16 further comprising, after .Iadd.the.Iaddend.step .[.(h2).]. .Iadd.of graphically connecting.Iaddend., thestep of repeating .Iadd.the .Iaddend.step .[.(h2).]. .Iadd.ofgraphically connecting .Iaddend.for all independent variables.
 18. Themethod of claim 14 wherein .Iadd.the .Iaddend.step .[.(h2).]. .Iadd.ofgraphically connecting .Iaddend.further includes graphically connectingthe plotted results using a line.
 19. The method of claim 14 wherein.Iadd.the .Iaddend.step .[.(h2).]. .Iadd.of graphically connecting.Iaddend.further includes graphically connecting the plotted resultsusing a curve.
 20. The method of claim .[.1.]. .Iadd.29 .Iaddend.wherein.Iadd.the .Iaddend.step .[.(h).]. .Iadd.of displaying a group ofrectangles .Iaddend.further includes displaying the rectangles with eachrectangle having a height equal to the difference between a maximum.Iadd.enclosed result .Iaddend.and .Iadd.a .Iaddend.minimum .[.value ofthe independent variable associated with the rectangle.]. .Iadd.enclosedresult.Iaddend..
 21. The method of claim .[.1.]. .Iadd.29.Iaddend.wherein .Iadd.the .Iaddend.step .[.(h).]. .Iadd.of displaying agroup of rectangles .Iaddend.further includes graphically connecting therectangles associated with a given independent variable.
 22. The methodof claim 21 wherein .Iadd.the .Iaddend.step .[.(h).]. .Iadd.ofgraphically connecting .Iaddend.further includes graphically connectingthe rectangles at a corresponding point in each rectangle.
 23. Themethod of claim 22 wherein the corresponding point is a top center pointof each rectangle.
 24. The method of claim 1 wherein the values read instep (b) comprise a grid.
 25. The method of claim 24 wherein step (b)further includes the steps of:b1. reading a first value; b2. reading alast value; b3. reading an incremental value; and b4. generating thegrid using the incremental value to generate values between the firstvalue and the last value to form the grid.
 26. The method of claim 1wherein step (g) further includes, after step (g)(4), the step of:(5)displaying the results of steps (g)(1) to (g)(4) together.
 27. A methodusing a system including a computer with a display for displaying afunction of at least .[.one.]. .Iadd.three .Iaddend.independent.[.variable.]. .Iadd.variables .Iaddend.and at least one dependentvariable, .Iadd.each independent variable having associated values,.Iaddend.the method comprising the steps of:a. defining a newindependent variable for said dependent variables, said new independent.[.variables.]. .Iadd.variable .Iaddend.having associated values; b.reading the values .Iadd.associated with each independentvariable.Iaddend.; c. selecting which independent variable is afastest-running independent variable, and ranking the selectedindependent variable as the fastest-running independent variable; d.selecting which independent variable is a next fastest-runningindependent variable, and ranking the selected independent variable asthe next fastest-running independent variable; e. repeating step (d)until al independent variables are ranked; f. determining a result foreach value of .[.a.]. .Iadd.the .Iaddend.new independent variable andfor all combinations of the values of all independent variables; g.plotting the results determined in step (f) .Iadd.for at least one valueof the new independent variable.Iaddend., said plotting comprising thesteps of:(1) .[.sequentially.]. displaying .Iadd.horizontally next toone another .Iaddend.the .[.result.]. .Iadd.results.Iaddend.corresponding to the values associated with the fastest-runningindependent variable for a first value of the next fastest-runningindependent variable and a first value of each of the remainingindependent variables; (2) .[.sequentially.]. displaying.Iadd.horizontally next to one anther .Iaddend.the .[.result.]..Iadd.results .Iaddend.corresponding to the values associated with thefastest-running independent variable for a second value of the nextfastest-running independent variable and a first value for each of theremaining independent variables.Iadd., the horizontally displaying nextto one another of the results being in such a manner that the ranking ofthe independent variables remains unchanged when using an extreme leftof each result to determine the ranking as when using an extreme rightof each result to determine the ranking.Iaddend.; (3) repeating steps(g)(2) for each remaining value of the next fastest-running independentvariable; (4) repeating steps (g)(1)-(g)(3) for each value of anyremaining independent variable.Iadd., the horizontally displaying nextto one another of the results being in such a manner that the ranking ofthe independent variables from fastest to slowest remains unchanged whenusing an extreme left of each result to determine the ranking as whenusing an extreme right of each result to determine the ranking.Iaddend.;.[.h. displaying a group of rectangles, said group of rectanglescontaining a nesting of rectangles of faster-running independentvariables within the rectangles of slower-running independentvariables;.]. and .[.i.]. .Iadd.h.Iaddend.. repeating steps (f) and (g)for each remaining new independent variable .Iadd.value.Iaddend..
 28. Asystem using a computer for displaying a function of at least .[.one.]..Iadd.three .Iaddend.independent .[.variable.]. .Iadd.variables.Iaddend.and at least one dependent variable, .Iadd.each independentvariable having associated values, .Iaddend.the system comprising:a.defining means for defining a new independent variable for saiddependent variables, said new independent .[.variables.]. .Iadd.variable.Iaddend.having associated values; b. reading means for reading thevalues .Iadd.associated with each independent variable.Iaddend.; c.first selecting means for selecting which independent variable is afastest-running independent variable and ranking the selectedindependent variable as the fastest-running independent variable; d.second selecting means for selecting which independent variable is anext fastest-running independent variable and ranking the selectedindependent variable as the next fastest-running independent variable;e. ranking means for repeating said selection of the nextfastest-running independent variable until all independent variables areranked; f. determining means for determining a result for each value of.[.a.]. .Iadd.the .Iaddend.new independent variable and for allcombinations of the values of all remaining independent variables; g.plotting means for plotting said results .Iadd.for at least one value ofthe new independent variable.Iaddend., said plotting meanscomprising:(1) first .[.sequentially.]. displaying means for.[.sequentially.]. displaying .Iadd.horizontally next to one another.Iaddend.the .[.result.]. .Iadd.results .Iaddend.corresponding to thevalues associated with the fastest-running independent variable for afirst value of the next fastest-running independent variable and a firstvalue of each of the remaining independent variables; (2) second.[.sequentially.]. displaying means for .[.sequentially.]. displaying.Iadd.horizontally next to one another in such a manner that the rankingof the independent variables remains unchanged when using an extremeleft of each result to determine the ranking as when using an extremeright of each result to determine the ranking, .Iaddend.the .[.result.]..Iadd.results .Iaddend.corresponding to the values associated with thefastest-running independent variable for a second value of the nextfastest-running independent variable and a first value for each of theremaining independent variables; (3) first repeating means for repeatingthe .[.sequential.]. display by the second .[.sequentially.]. displayingmeans for each remaining value of the next fastest-running independentvariable; (4) second repeating means for repeating the .[.sequential.].display by the first .[.sequentially.]. displaying means, by the second.[.sequentially.]. displaying means, and by the first repeating meansfor each value of any remaining independent variable .Iadd.in such amanner that the ranking of the independent variables from fastest toslowest remains unchanged when using an extreme left of each result todetermine the ranking as when using an extreme right of each result todetermine the ranking, .Iaddend.until completed for a last value of theslowest-running independent variable; .[.h. group means for displaying agroup of rectangles, said group of rectangles containing a nesting ofrectangles of faster-running independent variables within the rectanglesof slower-running independent variables;.]. and .[.i.]..Iadd.h.Iaddend.. looping means for repeating the determining of theresults by said determining means, and for repeating the plotting of theresults by said plotting means for each remaining new independentvariable .Iadd.value.Iaddend.. .Iadd.
 29. The method as set forth inclaim 1, further comprising the step of:displaying a group ofrectangles, each rectangle having a first vertical extreme and a secondvertical extreme, with at least one of said first vertical extreme andsaid second vertical extreme being determined by a property of at leastone horizontally enclosed result, said rectangles horizontally enclosingthe plotted results associated with a faster-running independentvariable. .Iaddend..Iadd.30. The system as set forth in claim 13,further comprising: group means for displaying a group of rectangles,each rectangle having a first vertical extreme and a second verticalextreme, with at least one of said first vertical extreme and saidsecond vertical extreme being determined by a property of at least onehorizontally enclosed result, said rectangles horizontally enclosing theplotted results associated with a faster-running independent variable..Iaddend..Iadd.31. The method as set forth in claim 27, furthercomprising the step of: displaying a group of rectangles, each rectanglehaving a first vertical extreme and a second vertical extreme, with atleast one of said first vertical extreme and said second verticalextreme being determined by a property of at least one horizontallyenclosed result, said rectangle horizontally enclosing the plottedresults associated with a faster-running independent variable..Iaddend..Iadd.32. The system as set forth in claim 28, furthercomprising: group means for displaying a group of rectangles, eachrectangle having a first vertical extreme and a second vertical extreme,with at least one of said first vertical extreme and said secondvertical extreme being determined by a property of at least onehorizontally enclosed result, said rectangles horizontally enclosing theplotted results associated with a faster-running independent variable..Iaddend.